package com.dao;

import com.entity.GoodCollectionItem;

import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CollectionGoodsDao {
  /**
   * 获取收藏条目数量
   *
   * @param userId 用户编号
   * @return 收藏条目数量
   */
  int selectGoodCollectionCount(@Param("userId") String userId);

  /**
   * * 判断商品编号为goodId的商品是否在编号为userId的用户的收藏列表中
   *
   * @param userId 用户编号
   * @param goodId 商品编号
   * @return 是返回1，不是返回0
   */
  int selectInCollectionGoods(@Param("userId") String userId, @Param("goodId") String goodId);

  /**
   * 将商品编号为goodId的商品添加到编号为userId的用户的收藏列表中
   *
   * @param userId 用户编号
   * @param goodId 待添加到商品收藏列表的商品编号
   * @return 添加成功返回1，否则返回0
   */
  int insertCollectionGoods(@Param("userId") String userId, @Param("goodId") String goodId);

  /**
   * 获取用户编号为userId的用户的第pageIndex页的收藏商品条目列表
   *
   * @param userId 用户编号
   * @param startIndex 从第几条开始
   * @param num 获取几条
   * @return 对应的商品收藏列表
   */
  List<GoodCollectionItem> selectCollectionGoodsList(
      @Param("userId") String userId, @Param("startIndex") int startIndex, @Param("num") int num);

  /**
   * 删除用户编号为userId的用户的编号为goodId的商品收藏条目
   *
   * @param userId 用户编号
   * @param goodId 待删除条目的商品编号
   * @return 删除成功返回1 否则返回0
   */
  int deleteCollectionGoodsItem(@Param("userId") String userId, @Param("goodId") String goodId);

  List<String> selectCollectionGoods(@Param("userId") String userId);
}
